﻿using Oya.Entities;
using Oya.Entities.GamingData;
using Oya.Entities.LaBoutique;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Oya.Business
{
    public class GameController
    {
        /**
         * The goal of this controller is to manage some of the game action.
         * todo algorithm...
         */

        public GameData GameData { get; set; }

        //design methods...

        /// <summary>
        /// Change le monstre actif du joueur
        /// </summary>
        /// <param name="monstreActif"></param>
        public void ChangerMonstreActif(MonstreBase monstreActif)
        {
            GameData.MonstreJoueur = monstreActif;
        }

        /// <summary>
        /// change l habilete active du monstre
        /// </summary>
        /// <param name="monstre"></param>
        /// <param name="habilete"></param>
        public void ChangerHabileteActive(MonstreBase monstre, Habilete habilete)
        {
            //todo set active ability
            throw new System.NotImplementedException();
        }
        /// <summary>
        /// Applique un element sur un monstre victime
        /// </summary>
        /// <param name="elementAttaquant"></param>
        /// <param name="monstreVictime"></param>
        public void AppliquerElementSurMonstre(ElementBase elementAttaquant, MonstreBase monstreVictime)
        {
            //todo logique pour appliquer l element habilete
            //  if (elementAttaquant.)
        }

        //Same as above
        //public void AppliquerDefenseSurMonstre(MonstreBase monstre,ElementBase element)
        //{
        //    element.Utiliser(monstre);
        //}

        /// <summary>
        /// Utiliser un article de la boutique
        /// </summary>
        /// <param name="monstre"></param>
        /// <param name="item"></param>
        public void UtiliserUnItemBoutique(MonstreBase monstre, ItemBoutique item)
        {
            /*todo penser a utiliser venant de l inventaire
             * pe aussi que l inventaire va l avoir passe en reference...
             * donc devoir reduire le nombre de cet item de l inventaire ou c est deja fait.
    */        
    item.Utiliser(monstre);

        }


    }
}
